//
// Created by Administrator on 2021/5/27.
//
#include <stdio.h>
/*
 * auto关键字可以修饰变量类型，也可以修饰变量。
 * 这个这个关键字用于声明变量的生存期为自动，即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量，而在函数中定义的变量视为局部变量。
 * 这个关键字不怎么多写，因为所有的变量默认就是auto的。
 * 1.修饰变量类型，auto叫做存储类（storage class）或类型说明符，只能在函数内部修饰局部变量，
 *   auto存储类是所有局部变量的默认存储类；
 * 2.auto作为变量类型时，默认是int类型，C语言中不做类型推断。
 * */

// auto int i = 10; // Illegal storage class on file-scoped variable

int main() {
    auto i = 1.2; // i的值转为int类型，1   auto可省略，等价于i = 1.2
    int a = 2, b = 3;
    auto j = a + b;
    // auto k; // auto类型的变量需要初始化 Declaration of variable 'k' with deduced type 'auto' requires an initializer

    printf("sizeof(i): %d\n", sizeof(i)); // 8 
    printf("sizeof(j): %d\n", sizeof(j)); // 4 
    return 0;
}
